package com.foreveross.crawl.common.exception.self;

import com.foreveross.crawl.common.exception.BusinessException;
import com.foreveross.crawl.common.exception.INotRetryException;
import com.foreveross.crawl.common.exception.enums.TaskStatusEnum;
import com.foreveross.taskservice.common.bean.TaskModel;

/**
 * 无法解析航线任务类型异常
 * 如：无法确定究竟是属于国内单程、国际往返等等异常
 * 现在需要对国际进行解析，这个异常是为了更好的捕获国际异常的情况，之前大部分都仅仅针对国内单程！
 * 此异常仅仅在无法确定类型或者该适配器无法解析该类型的时候抛出，如果确定但是出现解析页面错误或者其他类型错误则不应该抛出此异常
 * 
 * eg:艺龙适配器仅仅解析了国内单程和国际往返，如果现在过来的任务是要求解析国内往返，那么可以直接抛出该异常
 * @author guokenye
 *
 */
public class UnableParseRouteTypeException extends BusinessException  implements INotRetryException {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1348414751265047284L;

	
	public UnableParseRouteTypeException(String channelName, String type){
		super(TaskStatusEnum.TASK_UNABLE_PARSE_ROUTE.getStatus(), String.format("渠道 [%s] 解析 [%s] 异常",
				channelName,type==null?"":type));
	}
	
	public UnableParseRouteTypeException(TaskModel qlog, String type){
		super(TaskStatusEnum.TASK_UNABLE_PARSE_ROUTE.getStatus(), String.format("渠道 [%s] 解析 [%s] 异常",
				qlog.getGrabChannel(),type==null?"":type));
	}
	
	public UnableParseRouteTypeException(){
		super(TaskStatusEnum.TASK_UNABLE_PARSE_ROUTE.getStatus(), TaskStatusEnum.TASK_UNABLE_PARSE_ROUTE.getRemark());
	}
}
